Short answer: Yes, most of the time each kanji represents a single morpheme. There are exceptions.
The basic principle of kanji in the original Chinese system is that 1 character = 1 morpheme. This plays along well the property of Chinese languages where, in most cases, 1 syllable = 1 morpheme (source: Packard, The Morphology of Chinese). So in the typical Chinese case, 1 character = 1 morpheme = 1 syllable. There are exceptions even in Chinese (some of them disputed, some undeniable); but that’s the basic principle. This is accepted by all major linguistic works on writing systems including Rogers, Sproat, DeFrancis etc.; the technical term is morphography.
In Japanese, some of the on'yomi became two syllables, so the last part of the equation (1 kanji = 1 syllable) breaks even for on'yomi. And then there are kun'yomi which are, historically speaking, translations. Of course kun'yomi throw syllabic regularity out of the window (政 = matsurigoto). But more than that; since morpheme count doesn’t always translate 1:1, the 1 character = 1 morpheme rule got a lot more exceptions, too:
- In some cases, a Chinese single morpheme, like léi "thunder", translates to two or more in Japanese, like kami-nari gods-voice = thunder. As a result, the character for léi, 雷, represents two morphemes in kun-yomi. Other examples include 唇 kuchi-biru, 卵 tama-go, 政 matsuri-goto above, etc. This is the morphographical equivalent of the letter 'x' representing two sounds, /ks/, in English. These exceptional cases aren't morphographical but logographical (they represent whole words).
- In some cases, a polymorphemic Chinese word, like dà-rén big-person = "adult", translates to a single Japanese morpheme, like otona "adult". In these cases you need a string of multiple kanji to represent a single morpheme: 大人=otona. This is the morphographic equivalent of a digraph.
- Note that the original Chinese morpheme breakdown is usually indicative of the meaning (if the compound is transparent, which is normally the case). This means that, by historical coincidence and in these cases only, kanji can be said to be representing meaning, and not morphemes or sounds. An otona is a "big person", in meaning though not in etymology. Once the practice was established, it was used productively, too; like writing the Portuguese word tabaco (tobacco) as 煙草 smoke-herb. These are called "mature kun readings" 熟字訓 jukujikun in Japanese ("mature" in the sense of "conventional"). They’re a minor part of the system, but they’re part of the system.
Still, the most common use of kanji is on’yomi (e.g. according to my own corpus research, around 83% of Jōyō readings used in the Japanese wikipedia are on and not kun or jukujikun). And even for kun’yomi, 1:1 morpheme equivalence is the typical case (ken→inu, fuu→kaze, etc.) Which means that the basic principle of Japanese kanji is still morphography. It’s just messy morphography. See Terry Joyce, The significance of the morphographic principle for the classification of writing systems, for more discussion.
There’s another sense in which someone may argue that kanji don’t represent morphemes but ideas. It’s because a single kanji can potentially represent different morphemes (typically one on and one kun reading, but up to 12 alternatives in 生); and these multiple possibilities are normally related by meaning (because the kun are conventionalized translations of on). So 犬 can be said to represent the "idea" of dog because both the morphemes inu and ken (as in ai-ken, "beloved dog") can be represented by it, and these two morphemes both mean "dog".
This fact is interesting; it distinguishes Japanese writing from simpler morphography like Chinese, and it has to be acknowledged. But claiming that it's not morphography is like saying that English letters don’t represent sounds because the letter ‹a› has multiple possible pronunciations. There’s still a clear underlying principle. In any specific use of 犬, it will represent one morpheme, either inu or ken, specifically in these sound/meaning pairings (and cause the activation of the specific sound patterns in the reader’s brain, priming them for further use etc.; this has been shown in neurolinguistic research). What's more, the idea of "dog" as represented by doggu or -ku (as in 走狗 sōku "hunting hound") are not represented by 犬; so even in potentia, 犬 doesn’t actually represent the idea of "dog" however it may be expressed, it represents the specific morphemes inu and ken.
(Compare 犬 to the algarism ‹1›, which represents the mathematical idea of 'oneness' however it's expressed linguistically: ‹1› "one", ‹10› "ten", ‹11› "eleven", ‹100› "hundred", ‹1st› "fir-st", ‹100 años de soledad› "Cién años de soledad"… The mechanics of these two kinds of symbol are similar, but aren’t the same.)